package com.example.springbootfastjson2.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

import java.util.Map;
import java.util.Set;

/**
 * @program: springboot-fastjson2
 * @description: json工具类
 * @author: XianJin.Lu
 * @create: 2021-09-08 20:46
 **/
public class JsonUtils {

    //s必须是json字符串
    public  JSONObject getJSONObject(String s){

        JSONObject jsonObject;
        try{
         jsonObject= JSON.parseObject(s);
         //如果是json字符串,解析成功返回json对象
            return  jsonObject;
        }catch (Exception e){
            return null;
        }
    }


    //获取字符串中的子对象  s1 是json字符串   s2是子json字符串 的 key

    //  String s1= "{hello:\"world\",head : { \"cmdType\":2, \"cmdSn\":2222 } ,data : { \"devId\":0,\"operType\":0,\"doorIndex\":1 } }";
    //  s2=head  or  data
    public  JSONObject getSonJSONObject(String s1,String s2){

        try{
            JSONObject jsonObject = JSON.parseObject(s1);  //a

            Set<Map.Entry<String, Object>> entries = jsonObject.entrySet();

            for (Map.Entry<String, Object> entry : entries) {
                String key = entry.getKey();
                if(key==s2){  //b
                    Object value = entry.getValue();
                    String s = JSON.toJSONString(value);
                    if(s.indexOf('{')>=0) {
                        JSONObject jsonObject1 = JSON.parseObject(s);
                        return jsonObject1;
                    }
                    return   null;
                }
            }

        }catch (Exception e){
            //不是json格式  a处出错 到这里
            return null;
        }

        //没有出错  但是没有进入b  会到这里
        return null;
    }



}
